From f28434d00f658d925027776d2eaf0a4c458e942d Mon Sep 17 00:00:00 2001 From: Konrad Rzeszutek Wilk Date: Tue, 6 Sep 2016 12:18:10 -0400 Subject: [PATCH] version: Print build-id at bootup. Livepatch expected at some point to be able to print the build-id during bootup, which it did not. The reason is that xen_build_init and livepatch_init are both __initcall type routines. This meant that when livepatch_init called xen_build_id, it would return -ENODATA as build_id_len was not setup yet (b/c xen_build_init would be called later). The original patch fixed this by calling xen_build_init in livepatch_init which allows us to print the build-id of the hypervisor. However the x86 maintainers pointed out that build-id is independent of Livepatch and in fact should print regardless whether Livepatch is enabled or not. Therefore this patch moves the logic of printing the build-id to version.c. Reviewed-by: Jan Beulich Signed-off-by: Konrad Rzeszutek Wilk --- xen/common/livepatch.c | 6 ------ xen/common/version.c | 2 ++ 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/xen/common/livepatch.c b/xen/common/livepatch.c index c9dd51a6ea..0c564c2cdb 100644 --- a/xen/common/livepatch.c +++ b/xen/common/livepatch.c @@ -1547,12 +1547,6 @@ static void livepatch_printall(unsigned char key) static int __init livepatch_init(void) { - const void *binary_id; - unsigned int len; - - if ( !xen_build_id(&binary_id, &len) ) - printk(XENLOG_INFO LIVEPATCH ": build-id: %*phN\n", len, binary_id); - register_keyhandler('x', livepatch_printall, "print livepatch info", 1); arch_livepatch_init(); diff --git a/xen/common/version.c b/xen/common/version.c index 4375ea2bd7..0d31e38e9a 100644 --- a/xen/common/version.c +++ b/xen/common/version.c @@ -186,6 +186,8 @@ static int __init xen_build_init(void) } } #endif + if ( !rc ) + printk(XENLOG_INFO "build-id: %*phN\n", build_id_len, build_id_p); return rc; } -- 2.30.2